package cn.maihe.elg.operation.institution;

import cn.maihe.elg.operation.model.dto.BaseReq;
import cn.maihe.elg.operation.model.dto.BaseResp;
import cn.maihe.elg.operation.model.enums.InstitutionCode;
import cn.maihe.elg.operation.model.dto.InnerBaseResp;

import java.util.Map;

/**
 * @Description
 * @Author WJH
 * @Date 2021/05/10
 */
public interface InstitutionServiceInterface {


    /**
     * 出函机构枚举
     * @return InstitutionCode
     */
    InstitutionCode institutionCodeEnum();

    /**
     * 出函机构受理申请保函
     *
     * @param req
     * @param attrMap
     * @return
     */
    InnerBaseResp<BaseResp> applyGuarantee(BaseReq req, Map<String, Object> attrMap);

    /**
     * 出函机构受理申请保函状态通知
     *
     * @param req
     * @param attrMap
     * @return
     */
    InnerBaseResp<BaseResp> notifyOrderStatus(BaseReq req, Map<String, Object> attrMap);

    /**
     * 出函机构受理申请保函业务处理并生成电子保函时，向原申请方推送保函电子文件
     * @param innerBaseResp
     * @return
     */
    InnerBaseResp<BaseResp> pushGuarantee(InnerBaseResp innerBaseResp);

}
